Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
@fluentui/keyboard-key
Advanced tools
A simple utility for determining the KeyboardEvent.key property from a keyboard event.
@fluentui/keyboard-key is a utility package that provides constants and helper functions for handling keyboard events in a consistent manner. It is particularly useful for managing keyboard interactions in web applications, ensuring that key codes are handled correctly across different browsers and platforms.
Key Code Constants
The package provides constants for common key codes, making it easier to handle keyboard events without having to remember the numeric key codes.
const { EnterKey, EscapeKey } = require('@fluentui/keyboard-key');
console.log(EnterKey); // Outputs: 13
console.log(EscapeKey); // Outputs: 27
Key Code Mapping
The package includes helper functions like `getCode` and `getKey` to map between key names and key codes, simplifying the process of working with keyboard events.
const { getCode, getKey } = require('@fluentui/keyboard-key');
console.log(getCode('Enter')); // Outputs: 13
console.log(getKey(13)); // Outputs: 'Enter'
Cross-Browser Compatibility
The package ensures that keyboard events are handled consistently across different browsers by providing utility functions like `isKey` to check if a specific key was pressed.
const { isKey } = require('@fluentui/keyboard-key');
const event = new KeyboardEvent('keydown', { keyCode: 13 });
console.log(isKey(event, 'Enter')); // Outputs: true
The 'keycode' package provides a simple API for converting between key names and key codes. It is similar to @fluentui/keyboard-key in that it helps manage keyboard events, but it is more lightweight and does not include as many utility functions.
The 'mousetrap' package is a library for handling keyboard shortcuts in web applications. While it offers more advanced features for binding and managing keyboard shortcuts, it does not provide the same level of key code constants and mappings as @fluentui/keyboard-key.
The 'hotkeys-js' package is another library for managing keyboard shortcuts. It is more focused on binding and handling complex keyboard shortcuts, whereas @fluentui/keyboard-key is more about providing key code constants and utility functions.
A simple utility for determining the KeyboardEvent.key
property from a keyboard event.
yarn add keyboard-key
# or
npm install keyboard-key
Get the key
property value from an event.
document.addEventListener('keydown', event => {
const key = keyboardKey.getKey(event);
switch (key) {
case 'Escape':
// handle escape key
break;
default:
break;
}
});
See MDN or the source for a full list of
key
values.
You can also get the normalized keyCode
from an event. @fluentui/keyboard-key
includes a hash of key
names to keyCode
s for easy comparisons:
document.addEventListener('keydown', event => {
const code = getCode(event);
switch (code) {
case keyboardKey.Escape: // 27
// handle escape key
break;
default:
break;
}
});
Most previous key identifying KeyboardEvent properties have been pressed have been deprecated in favor of Keyboard.key
.
:-1: KeyboardEvent.char
:-1: KeyboardEvent.charCode
:-1: KeyboardEvent.keyCode
:-1: KeyboardEvent.keyIdentifier
:-1: KeyboardEvent.keyLocation
:-1: KeyboardEvent.which
:+1: KeyboardEvent.key
Unfortunately, KeyboardEvent.key
does not yet have full browser support. Leaving the browsers without a reliable property for identifying keyboard event keys.
This utility interprets use of the shift key when inferring event key
values. Example, an event describing shift+/ would result in a key
value of ?. This logic assumes an en-US
locale keyboard layout. This will not work if you are using a different locale such as a German layout where / is shift+7.
FAQs
A simple utility for determining the KeyboardEvent.key property from a keyboard event.
The npm package @fluentui/keyboard-key receives a total of 97,179 weekly downloads. As such, @fluentui/keyboard-key popularity was classified as popular.
We found that @fluentui/keyboard-key demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.